home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / VISUALBA / BOZOL2.ZIP / DATABASE.CMD < prev    next >
OS/2 REXX Batch file  |  1994-02-08  |  4KB  |  133 lines

  1. CASE "USE"
  2.     F$=POPARG$
  3.         IF F$="" THEN DBUSE "",e%:EXIT SELECT
  4.         IF INSTR(F$,".")=0 THEN F$=F$+".DBF"
  5.         DBUSE F$,e%
  6.         SELECT CASE e%
  7.             CASE 1:BOZOPRINT "Database file not found"+CrLf$
  8.                 CASE 2:BOZOPRINT "Zero byte file"+CrLf$
  9.                 CASE 3:BOZOPRINT "File has no fields"+CrLf$
  10.                 CASE 4:BOZOPRINT "Not a dBASE database file"+CrLf$
  11.         END SELECT
  12.         IF Prog%=0 THEN
  13.         BOZOPRINT STR$(Numberoffields?) + " in " + STR$(NumberOfRecords???)+ " records."+CrLf$
  14.     END IF
  15.  
  16. CASE "GET"
  17.     R???=VAL(POPARG$)
  18.         dBGetRecord R???,e%
  19.         SELECT CASE e%
  20.                 CASE 0 ' success
  21.             CASE 1:BOZOPRINT "Database not open"+CrLf$
  22.                 CASE 2,3:BOZOPRINT "Invalid record number"+CrLf$
  23.     END SELECT
  24.  
  25. CASE "PUT"
  26.     R???=VAL(POPARG$)
  27.     For i%=1 TO NumberOfFields?
  28.          IF DBS(i%).FieldType="N" THEN
  29.           DBPutNField (DBS(i%).FieldName),VAL(GETVAR$((DBS(i%).FieldName)) ),e%
  30.          ELSE
  31.           DBPutCField (DBS(i%).FieldName),GETVAR$((DBS(i%).FieldName)),e%
  32.          END IF
  33.         VCLEAR (DBS(i%).FieldName)
  34.     NEXT i%
  35.     DBPutRecord R???,e%
  36.         SELECT CASE e%
  37.             CASE 1:BOZOPRINT "Database not open"+CrLf$
  38.                 CASE 2:BOZOPRINT "Invalid Record Number"+CrLf$
  39.     END SELECT
  40.  
  41. IF LEN(INDEX$) THEN
  42.     BT Index$,"A", UCASE$(DBGetCField$(IndexField$,e%)),MKDWD$(RecNum???),"","",r%
  43.     IF NOT r% THEN BOZOPRINT "Error updating index file"+CrLf$
  44. END IF
  45.  
  46. CASE "CREATEFORMAT"
  47.     IF Comline=0 AND dBASEOpen% THEN
  48.     DBCreateFormat
  49.         ELSE
  50.         BOZOPRINT "Cannot create a format now."+CrLf$
  51.         END IF
  52.  
  53. CASE "CREATEINDEX"
  54.     I$=POPARG$:IF INSTR(I$,".")=0 THEN I$=I$+".BTX"
  55.         F$=POPARG$:IF F$="" THEN F$=LEFT$(I$,INSTR(I$,".")-1)
  56.         DBCreateIndex I$, F$, e%
  57.         SELECT CASE e%
  58.         CASE 1:BOZOPRINT "Database not open"
  59.         CASE 2:BOZOPRINT "Invalid Field name"
  60.         CASE 3:BOZOPRINT "Cannot create file"
  61.         CASE 4:BOZOPRINT "Error reading database"
  62.         CASE 5:BOZOPRINT CrLf$+"*ABORTED*"
  63.         CASE 6:BOZOPRINT "Internal error"
  64.         CASE 7:BOZOPRINT "Disk Write Error"
  65.         END SELECT
  66.     BOZOPRINT CrLf$
  67. CASE "FORMAT"
  68.     dBSetFormatTo POPARG$,e%
  69.         IF e% THEN BOZOPRINT "Format file not found"+CrLf$
  70.  
  71. CASE "VIEW"
  72.     DBView
  73.  
  74. CASE "EDIT"
  75.         e%=0
  76.         R???=VAL(POPARG$)
  77.         IF R???=0 THEN CALL dBEditFields (e%) ELSE dBEditRecord R???,e%
  78.          IF e% THEN BOZOPRINT "Invalid Record Number"+CrLf$
  79. CASE "APPEND"
  80.     dBAppendRecord e%
  81.         IF e% THEN BOZOPRINT "APPEND error"+CrLf$
  82.  
  83. CASE "DELIMITED"
  84.     PUSHARG DBGetASCII$
  85.  
  86. CASE "INDEX"
  87.     I$=POPARG$
  88.         IF I$="" THEN DBSetIndexTo "","",e%:EXIT SELECT
  89.         IF INSTR(I$,".")=0 THEN I$=I$+".BTX"
  90.         F$=POPARG$:IF F$="" THEN F$=LEFT$(I$,INSTR(I$,".")-1)
  91.         DBSetIndexTo I$, F$, e%
  92.             SELECT CASE e%
  93.                     CASE 1:BOZOPRINT "Database not open"+CrLf$
  94.                         CASE 2:BOZOPRINT "Invalid Field Name"+CrLf$
  95.                         CASE 3:BOZOPRINT "Index file not found"+CrLf$
  96.         END SELECT
  97.  
  98. CASE "FIND"
  99.     Findme$=POPARG$
  100.         F$=FINDME$
  101.         DBSearchIndex Findme$,e%
  102.         IF e% THEN BOZOPRINT "FIND error"+CrLf$:EXIT SELECT
  103.         IF UCASE$(F$)<>UCASE$(LEFT$(FINDME$,LEN(F$))) THEN _
  104.          BOZOPRINT "Not found"+CrLf$:Found=%False ELSE Found=%True
  105. CASE "NEXT"
  106.         DBSkip 1, E%
  107.         IF e% THEN BOZOPRINT "Can't SKIP"+CrLf$:DBEND%=-1
  108. CASE "PREV","PREVIOUS"
  109.         DBSkip -1, E%
  110.         IF e% THEN BOZOPRINT "Can't SKIP"+CrLf$:DBEND%=-1
  111. CASE "SKIP"
  112.     R&=VAL(POPARG$):IF R&>32767 OR R&<-32767 THEN _
  113.             BOZOPRINT "SKIP out of range"+CrLf$:EXIT SELECT
  114.     R%=R&
  115.         DBSkip R%, E%
  116.     IF e% THEN BOZOPRINT "Can't SKIP"+CrLf$
  117.     DBEND%=e%
  118. CASE "TOP","FIRST"
  119.     DBGOTOTOP e%
  120.         IF e%=1 THEN BOZOPRINT "Database error"+CrLf$
  121.         IF e%=2 THEN BOZOPRINT "Index error"+CrLf$
  122. CASE "BOTTOM","LAST"
  123.     DBEND%=-1
  124.     DBGOTOBOTTOM e%
  125.         IF e%=1 THEN BOZOPRINT "Database error"+CrLf$
  126.         IF e%=2 THEN BOZOPRINT "Index error"+CrLf$
  127. CASE "ISOPEN"         :PUSHARG STR$(ISTRUE dBaseOpen%)
  128. CASE "RECNUM","RECNO" :PUSHARG STR$(RecNum???)
  129. CASE "NUMFIELDS"      :PUSHARG STR$(NumberOfFields?)
  130. CASE "COUNT"          :PUSHARG STR$(NumberOfRecords???)
  131. CASE "INDEXFILE"      :PUSHARG INDEX$
  132. CASE "INDEXFIELD"     :PUSHARG INDEXFIELD$
  133. CASE "DBEND"          :PUSHARG STR$(DBEND%)